home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Texteditors / Origami / bindings / fun / noover < prev    next >
Encoding:
Text File  |  1996-09-27  |  3.2 KB  |  97 lines

  1. @if-using not(ocl-file-noover)
  2.    @use (ocl-file-noover)
  3.    ;OCL{{{}}}
  4.    ;OCL{{{  reference description
  5.    @if-using ( FUN-REFERENCE ) ; 1 ;
  6.    Defines a function, which replaces overstrike  keysequences  (backspace
  7.    character) by the corresponding single character. Underlines `backspace
  8.    _' or `_ backspace' will be removed.
  9.  
  10.    At lines, starting with `escape character' (roff uses such sequences to
  11.    mark partial line-feed) , this sequence will be removed.
  12.  
  13.    Font change character sequences `escape [ char m' will also be removed.
  14.    @fi
  15.    ;OCL}}}
  16.    ;OCL{{{  vars
  17.    ( defvar ( n-o-line n-o-change n-o-view n-o-regexp ) )
  18.    ;OCL}}}
  19.    ;OCL{{{  no-overstrike
  20.    ;OCL{{{  reference
  21.    @if-using ( FUN-REFERENCE ) ; 2 ; no-over-called
  22.    ;OCL{{{  @noover-ref no-overstrike
  23.    Removes all overstrike sequences (backspace character).
  24.    ;OCL}}}
  25.    @fi
  26.    ;OCL}}}
  27.    ( deffun no-overstrike
  28.       (
  29.         ;OCL{{{  save state
  30.         set n-o-line store-line
  31.         set n-o-change counter test-file-changed
  32.         if n-o-change ( set-file-unchanged ) fi
  33.         set n-o-view counter test-view
  34.         if n-o-view ( delete-mode-view ) fi
  35.         delete-mode-regular-expression
  36.         set n-o-regexp +(ocl-argument 1)
  37.         ;OCL}}}
  38.         ;OCL{{{  do the no-overstrike
  39.         add-mode-extended-regular-expression
  40.         beginning-of-fold
  41.         replace-string
  42.                  "( "( ". ") "( insert-ascii 8 "( "[^_] ") ") "+ ")
  43.               "| "( "( "[^_] ") "( insert-ascii 8 ". ") "+ ")
  44.               "| "( "_ "( insert-ascii 8 "_ ") "+ ")
  45.               "| "( "^ "( "[[:space:]]* ") insert-ascii 27 ". ")
  46.               "| "( insert-ascii 27 "\[.m ")
  47.            newline-and-indent
  48.               "\?1\4}\?5\6}\?8_}\?g11\g11}
  49.            newline-and-indent
  50.         beginning-of-fold
  51.         ;OCL}}}
  52.         ;OCL{{{  reset states
  53.         if not(n-o-change) ( set-file-unchanged ) fi
  54.         set n-o-change false
  55.         if n-o-view ( add-mode-view ) fi
  56.         set n-o-view false
  57.         case
  58.          ( =(1 n-o-regexp) ( delete-mode-regular-expression ) )
  59.          ( =(2 n-o-regexp) ( add-mode-basic-regular-expression ) )
  60.         esac
  61.         goto-line-counter n-o-line
  62.         ;OCL}}}
  63.       )
  64.    )
  65.    ;OCL}}}
  66.    ;OCL{{{  abort-hook-add
  67.    @if-using not(ABORT-HOOK-ADD)
  68.       @use (ABORT-HOOK-ADD)
  69.       ( defmac abort-hook-add ( ) )
  70.    @fi
  71.    ( defmac abort-hook-add-saved ( abort-hook-add ) )
  72.    ( undeclare ( abort-hook-add ) )
  73.    ( defmac abort-hook-add
  74.       ( abort-hook-add-saved
  75.         if n-o-view ( add-mode-view set n-o-view false ) fi
  76.         case
  77.          ( =(1 n-o-regexp) ( delete-mode-regular-expression ) )
  78.          ( =(2 n-o-regexp) ( add-mode-basic-regular-expression ) )
  79.         esac
  80.       )
  81.    )
  82.    ( undeclare ( abort-hook-add-saved ) )
  83.    ;OCL}}}
  84.    ;OCL{{{  reference hooks
  85.    @if-using ( FUN-REFERENCE ) ; 3 ;
  86.    The  libary  defines  a  macro   `abort-hook-add'   and   a   OCL   tag
  87.    ABORT-HOOK-ADD.  This  macro  should be added to your  abort-macro!  If
  88.    needed, an existing macro `abort-hook-add' will be integrated!
  89.  
  90.    The  libary  functions  are   marked   as   demand-loading.
  91.    @fi
  92.    ;OCL}}}
  93.    ;OCL{{{  undeclares
  94.    ( undeclare ( n-o-line n-o-change n-o-view n-o-regexp ) )
  95.    ;OCL}}}
  96. @fi
  97.